package handler;

import java.util.Set;
import java.util.HashSet;
import java.util.Random;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import bean.RequestBodyDTO;
import bean.ResponseBodyDTO;

@Controller
public class JsonRequestMappingHandler {
    @RequestMapping("get-json")
    /*
     * @ResponseBody注解用于将控制器的方法返回的对象通过HttpMessageConverter接口转换为指定格式的数据，
     * 例如json、xml等；通过response反馈给客户端
     */
    @ResponseBody
    public Set<ResponseBodyDTO> getData(
            /*
             * @RequestBody注解用于通过提供的HttpMessageConverter接口读取http请求的内容（字符串）
             * 将读取的内容转换为json、xml等格式的数据并将其与控制器方法的参数绑定
             */
            @RequestBody RequestBodyDTO requestBodyDTO) {
        Set<ResponseBodyDTO> responseBodyDTOSet = new HashSet<>();
        Random random = new Random();
        int count = random.nextInt(128) + 1;
        for (int seq = 0; seq < count; seq++) {
            responseBodyDTOSet.add(new ResponseBodyDTO(requestBodyDTO.getField1(), requestBodyDTO.getField2(), requestBodyDTO.isField3()));
        }
        return responseBodyDTOSet;
    }
}
